# -*- coding: UTF-8 -*-

from pln_commons import *
import re

puntuacion = '¡!¿?"\'.,'
letras = 'A-Za-zÑñáéíóú0-9\-'

class Corrector:
	diccionario = []

	def __init__(self):
		self.diccionario = self.cargarDiccionario()
		#otras inicializaciones del corrector...
		
	def close(self):
		#si es necesario liberar recursos del corrector
		pass

	def cargarDiccionario(self):
		if self.diccionario==[]:
			f = open("dicc.src","r")
			for line in f:
				self.diccionario.append(line)
		return self.diccionario

	def obtenerTokens(self, texto, ini):
		return [TokenTexto(m.group(),m.start(),m.end()) for m in\
				re.finditer(r'['+letras+']+|['+puntuacion+']',texto[ini:])]

	def revisarOrtografia(self, texto, ini):
		tokens = []
		for w in self.obtenerTokens(texto,ini):
			if not re.match(r'['+puntuacion+']',w.texto):
				if w.texto.lower().encode('ascii') in self.diccionario:
					w.analisis.ortografia=Ortografia(True)
				else:
					w.analisis.ortografia=Ortografia(False,\
							self.buscarAlternativasOrtografia(w.texto))
		return tokens
		
	def buscarAlternativasOrtografia(self, token):
		return token
		
	def analisisMorfologico(self, palabra):
		pass
		
	def generarPalabras(self, analisis):
		pass
